#ifndef __MYSQLDB_H__
#define __MYSQLDB_H__

#include <mysql/mysql.h>
#include <string>

//这里的mysql类，设计成线程安全的单例模式
    //线程安全的单例模式：就是构造函数是私有化的，对外提供一个静态函数用来创建对象
//同时采用raii思想
//这里编程的MySQL是客户端，相当于去连接电脑上的MySQL服务端，连接上之后然后开始执行XXXXXX

class MySQLDB {
private:
    MYSQL* m_mysqlClient;
    MySQLDB() {
        m_mysqlClient = NULL;
    }

public:
    static MySQLDB* GetInstance() {
        static MySQLDB res;
        return &res;
    }

    //mysql连接的字符串:mysql -h x.x.x.x -P 3306 -u root -p
    void Connect(const std::string& ip, unsigned short port, const std::string& user, 
        const std::string& password, const std::string& db);
    
    bool Insert(std::string&& sql);
    int Query(std::string&& sql);

    ~MySQLDB();
};



#endif